<?php
/**
 * 用户模型model
 * 13-5-15 下午9:01   //时间通过netbeans快捷键  ctrl+j
 * 两个基本方法：
 * model
 * tableName
 */
class User extends CActiveRecord{
    //在当前模型增加一个属性password2，因为数据库表里边没有这个属性
    //我们可以在当前类直接设置这个属性使用

    //获得数据模型方法
    public static function model($className = __CLASS__) {
        return parent::model($className);
    }

    //定义数据表名字
    public function tableName(){
        return "{{user}}";
    }

    //设置标签名字与数据库字段对应
    public function attributeLabels() {
        return array(
			'user_id'=>'ID',
            'username'=>'用户名',
            'password'=>'密  码',
            'password2'=>'确认密码',
            'user_sex'=>'性  别',
            'user_qq'=>'qq号码',
            'user_introduce'=>'简  介',
            'user_email'=>'邮  箱',
            'user_tel'=>'手机号码',
        );
    }

    /*
     * 实现用户注册表单验证
     * 在模型里边设置一个方法，定义具体表单域验证规则
     */
    public function rules() {
        return array(

            array('username','required','message'=>'用户名不能为空'),

            //用户名最大最小长度限制
            array('username', 'length', 'min'=>'4', 'tooShort'=>'用户名至少4个字符','max'=>16,'tooLong'=>'用户名至多16个字符'),

            //用户名不能重复(与数据库比较)
            array('username', 'unique', 'message'=>'用户名已经被占用'),

            array('password','required','message'=>'密码不能为空'),

            //用户名最大最小长度限制
            array('password', 'length', 'min'=>'6', 'tooShort'=>'密码至少6个字符'),
            
            //邮箱默认不能为空
            array('user_email','email','allowEmpty'=>false,  'message'=>'邮箱格式不正确'),

            //验证qq号码(都是数字组成，5到12位之间，开始为非0信息，使用正则表达式验证)
            array('user_qq','match','pattern'=>'/^[1-9]\d{4,11}$/','message'=>'qq格式不正确'),

            //验证手机号码(都是数字，13开始，一共有11位)
            array('user_tel','match','pattern'=>'/^1\d{10}$/','message'=>'手机号码格式不正确'),

            //为没有具体验证规则的属性，设置安全的验证规则，否则attributes不给接收信息
            array('user_sex,user_introduce','safe'),
        );
    }
	
	public function search()
	{
		// @todo Please modify the following code to remove attributes that should not be searched.

		$criteria=new CDbCriteria;

		$criteria->compare('user_id',$this->user_id);
		$criteria->compare('username',$this->username,true);
		$criteria->compare('password',$this->password,true);
		$criteria->compare('user_email',$this->user_email,true);
		$criteria->compare('user_sex',$this->user_sex);
		$criteria->compare('user_qq',$this->user_qq,true);
		$criteria->compare('user_tel',$this->user_tel,true);
		$criteria->compare('user_introduce',$this->user_introduce,true);

		return new CActiveDataProvider($this, array(
			'criteria'=>$criteria,
		));
	}
    
}

